!% -SD !================================================== Constant Story "DE BARON"; Constant Headline "^Een interactief verhaal, geschreven door Victor Gijsbers ^en gepubliceerd onder de GNU General Public License. ^ (Type 'copyright' of 'about' voor meer informatie.) ^Nieuwe lezers wordt aangeraden 'help' te typen.^"; Constant NO_SCORE; !Constant WITHOUT_DIRECTIONS; Replace Refers; Replace MakeMatch; Replace Identical; Replace NounDomain; Replace TryGivenObject; !Include "wtalk"; Include "Parser"; Include "pname.h"; Object LibraryMessages with before [; Miscellany: if(lm_n == 19) if(kleding has worn) { "In je ruige houthakkerskleding zie je er bijzonder mannelijk uit. Fikse spierbundels, een stoppelbaard en een stevige kaaklijn maken het plaatje compleet."; } else { "Slechts gekleed in je nachthemd trotseer je het duister en de koude. Je stevige spieren en ongeschoren gezicht verlenen je een bijzonder masculien uiterlijk."; }; if(lm_n == 9) "^Duisternis vult onmiddellijk de wereld."; if(lm_n == 17) "In de duisternis kan je niets zien."; if(lm_n == 30) "Zoiets zie je niet, of het is niet belangrijk om je ermee bezig te houden."; Attack: if(verhaaltracker.status < 5){ "Je kan je krachten beter sparen voor je confrontatie met de baron."; } else { "Je bent niet in de stemming om dat kapot te maken."; }; Take: if(lm_n == 2) if(verhaaltracker.status < 5) { "Alleen de baron van M@:unchhausen kan iets bereiken door aan zichzelf te trekken, en dat is niet de baron waar jij naar op zoek bent."; } else { "Je bent een baron, maar niet die van M@:unchhausen."; }; Pray: if(1 == 1){ "~Maria, heilige moeder, sta mij bij in deze nachtmerrie.~"; } else { "TODO"; }; Wake: "Zo gemakkelijk kan je aan deze duistere nachtmerrie niet ontkomen."; Think: "Beelden flitsen aan je geestesoog voorbij, maar je drukt ze weg. Je wilt niet denken."; Jump: "Je springt op en neer om je spieren los te maken. Je voelt je goed, een bonk kracht op zoek naar een mogelijkheid zich te uiten."; Strong: "Je vervloekt de kwaadaardige baron voor alles wat hij je heeft aangedaan."; WaveHands: "Je zwaait je armen op en neer om je spieren los te maken. Je voelt je goed, een bonk kracht op zoek naar een mogelijkheid zich te uiten."; Sing: "~Don Giovanni!~ hoor je jezelf zingen met een diepe, onheilspellende basstem. Inderdaad voelt het alsof elk moment een goddelijke vergelding op aarde neer kan dalen om de wellustige schurk van dit stuk de afgrond van de Hel in te sleuren."; Wait: "Er is geen tijd te verliezen."; Sleep: "Het vooruitzicht van diepe, droomloze slaap lokt, maar je moet je dochter nog redden! Bovendien slaap je liever niet op de koude grond."; Answer, Ask, AskFor, Tell, Order, No, Yes, Sorry: "Maak, om met iemand te spreken, gebruik van het commando PRAAT MET ."; ]; [ ChooseObjects obj code; if (code < 2) {if (obj has scenery) return 2; rfalse;} if (obj hasnt scenery) return 2; return 1; ]; Include "Verblib"; !Include "wtalk"; Include "GoNeighbour"; Include "gtalkNL"; !=================================================== ! The Game Objects !--------------------------------------------------- ! Speciale classes Class Prop with before [; Examine: return false; Search: <>; default: print_ret "Dat hoef je in dit verhaal niet te doen."; ], has scenery; Class PropSup with before [; Examine: return false; Search: <>; default: if(noun == self){ print_ret "Je hoeft je in dit verhaal niet bezig te houden met ", (the) self, "."; } else return false; ], has supporter static; Class Furniture with before [; Take,Pull,Push,PushDir: print_ret (The) self, " is te zwaar."; ], has static; Class Deur with react_before [; Go: if(noun.door_dir == self.door_dir()) return self.open_by_myself(); Enter: if (noun == self) return self.open_by_myself(); ], open_by_myself [ ks; if (self has open) rfalse; print "(", (the) self, " openend)^"; ks = keep_silent; keep_silent = true; ; keep_silent = ks; if (self hasnt open) rtrue; ], has static door; !--------------------------------------------------- ! Scene 1: Thuis !--------------------------------------------------- Object mijnslaap "In je slaapkamer" with name 'slaapkamer' 'kamer', description "Het zwakke schijnsel van de maan dat door het raam naar binnen valt hult de meubels in de slaapkamer in een mantel van onwereldse schoonheid. Alleen het zachte ademen van je echtgenote in het grote ledikant doorbreekt de stilte. Naast de zware eiken kledingkast bevindt zich de deur naar de overloop. In de onverwarmde kamer is het ijzig koud.", n_to over_deur, has light male transparent; Object mijnbed "ledikant" mijnslaap class Furniture, with name 'bed' 'ledikant' 'hemelbed' 'grote', description "Het grote, door jou zelf getimmerde bed neemt bijna de halve kamer in beslag. Maanlicht kruipt over de veelkleurige deken, die bij elke ademtocht van je vrouw op en neer gaat.", react_before [; Sleep: if (parent(player) == self) { "Natuurlijk, als je gewoon weer in slaap kon vallen, niets hoefde te doen en nergens aan hoefde te denken. Maar zo gemakkelijk is het niet. Je zal aan Maartje denken en blijven denken, en niet kunnen slapen tot je tot actie bent overgegaan. En zelfs als het je zou lukken om in slaap te vallen, dan is er morgen weer een dag, en overmorgen - en het zal niet steeds opnieuw blijven lukken. Beter om het kwaad vandaag onder ogen te zien, dan om de confrontatie uit te stellen tot morgen."; }; ], has enterable transparent scenery; Object deken "deken" mijnbed class Prop, with name 'deken' 'laken' 'veelkleurige' 'dekbed', description "Rode, blauwe en groene vlakken, nauwelijks herkenbaar in het schemerduister, wisselen elkaar schijnbaar zonder patroon af. Je vrouw Hilde heeft de deken zelf op maat bij het door jou vervaardigde bed gemaakt. Jullie hebben de traditie in ere gehouden: pas toen beide gereed waren kon er getrouwd worden.", before [; Touch: "Zachtjes streel je de deken en denk je aan gelukkiger tijden."; ], has male; Object vrouw "Hilde" mijnbed with name 'vrouw' 'echtgenote' 'geliefde' 'eega' 'Hilde', slaap 0, description [; if (self.slaap == 0) { self.slaap = 1;"Je buigt je voorover om Hilde's gezicht beter te kunnen zien; even stokt haar adem en lijkt ze te verstijven, dan keert het gestadige ritme weer terug. Maar je weet genoeg - ze slaapt niet! Ze weet waar je naar op weg bent, maar houdt zich slapende. Een stille goedkeuring die ze nooit zou kunnen uitspreken? Of is ze simpelweg te bang om de confrontatie aan te gaan?"; } else { "Hilde's stille engelengezicht en haar regelmatige ademhaling verraden niet dat ze wakker is. Ze weet waar je naar op weg bent, maar houdt zich slapende. Een stille goedkeuring die ze nooit zou kunnen uitspreken? Of is ze simpelweg te bang om de confrontatie aan te gaan?"; }; ], before [; Answer, Ask, AskFor, Tell, Squeeze, Spreek: if(self.slaap == 0){"Nee, je wilt Hilde niet wakker maken. Zij is er heftig tegen dat je je leven waagt in een poging jullie dochter te bevrijden.";} else {"Het is beter om de fassade in stand te houden. Laat haar doen alsof ze slaapt. Ze weet toch al precies wat je gaat doen, en het is voor haar gemakkelijker te accepteren wanneer ze er niet expliciet mee geconfronteerd wordt. Bovendien wil je zelf liever ook niet over de risico's nadenken.";}; Attack: "Je balt je vuisten in een plotseling moment van woede. ~Het zou voor eeuwig zijn!,~ flitst er door je hoofd - maar even snel verdwijnt de gedachte weer en begrijp je niet meer wat hij betekende. Je zal nooit je vrouw Hilde aanvallen. Je houdt immers van haar."; Kiss: if(self.slaap == 0){self.slaap = 1;"Je buigt je voorover om Hilde's gezicht te kunnen zoenen; even stokt haar adem en lijkt ze te verstijven, dan keert het gestadige ritme weer terug. Maar je weet genoeg - ze slaapt niet! Ze weet waar je naar op weg bent, maar houdt zich slapende. Een stille goedkeuring die ze nooit zou kunnen uitspreken? Of is ze simpelweg te bang om de confrontatie aan te gaan?";} else {"Jouw lippen beroeren haar blanke wang in het tederste teken van afscheid. Vreemd genoeg lijkt zij te verstijven en te proberen haar hoofd verder in het kussen te laten zakken.";}; Listen: if(self.slaap == 0){"De ritmische ademhaling van Hilde is een rustgevend geluid in deze gevaarlijke nacht.";} else{"De ritmische ademhaling van Hilde verraadt niet dat ze eigenlijk wakker is.";}; Pull, Push: "Je zou nooit hardhandig met je echtgenote omgaan."; Smell: "Haar geur herken je uit duizenden. Het is de geur van warmte en geborgenheid."; Touch: if(self.slaap == 0){"Dat kan je beter niet doen; wellicht wordt ze er wakker van.";} else{"Je laat je vingertoppen even over haar wang en door haar blonde haren spelen. Een korte rilling gaat door haar heen, maar ze blijft bij haar toneelspel en houdt zich slapende.";}; WakeOther: if(self.slaap == 0){"Nee, je wilt Hilde niet wakker maken. Zij is er heftig tegen dat je je leven waagt in een poging jullie dochter te bevrijden.";} else{"Hoe zou je iemand kunnen wekken die niet slaapt?";}; ], orders [; default: if (self.slaap == 0) { "Je wilt Hilde niet wakker maken. Zelfs als ze je niet zou tegenhouden, zou ze zich alleen maar nodeloos zorgen maken als ze wist welke heldendaden jij vannacht zal volbrengen.";} else { "Hilde reageert niet op je commando."; }; ], has animate female proper scenery; Object stoel "stoel" mijnslaap class PropSup, with name 'stoel' 'kruk' 'zetel', description "Een eenvoudige houten stoel die je gebruikt om je kleding 's avonds overheen te hangen.", has male; Object kleding "je werkkleding" stoel with name 'kleding' 'kleren' 'werkkleding', description "Dit is de kleding waarmee je overdag in het woud hout gaat hakken: een stevige spijkerbroek, een rood-blauw geruit hemd en twee zware leren laarzen. Er hangt een vage zweetgeur om het hemd heen.", has clothing proper transparent; Object hemd "houthakkershemd" kleding with name 'hemd' 'houthakkershemd' 'shirt' 'wollen' 'geruit' 'zweet', description "Een rood-blauw geruit wollen hemd, door je vrouw Hilde met de hand gesponnen, geverfd en gebreid. De geur van het eerlijke zweet van de harde werker hangt er omheen.", before [; Wear: <>; Take: <>; Disrobe: <>; Drop: <>; PutOn: <>; Smell: "Onmiskenbaar een zweetgeur. Maar volgens Hilde is dat juist opwindend."; ], has concealed; Object broek "houthakkersbroek" kleding with name 'broek' 'houthakkersbroek' 'stevige' 'spijkerbroek' 'jeans' 'Levi^s' 'jeans', description "Blauwe Levi's jeans, niet mooier geworden van wat ze tijdens het uitoefenen van je beroep allemaal hebben moeten doorstaan. Dat ze nog steeds intact zijn is een bewijs van hun duurzaamheid.", before [; Wear: <>; Take: <>; Disrobe: <>; Drop: <>; PutOn: <>; ], has male concealed; Object laarzen "houthakkerslaarzen" kleding with name 'laars' 'laarzen' 'leren' 'zware' 'houthakkerslaarzen' 'schoenen', description "Een paar leren laarzen, met stalen neuzen voor extra bescherming.", before [; Wear: <>; Take: <>; Disrobe: <>; Drop: <>; PutOn: <>; ], has pluralname concealed; Object kast "kledingkast" mijnslaap class Furniture, with name 'kast' 'kledingkast' 'eiken' 'zware', description "Met dit grote meubel ben je weken bezig geweest. Niet alleen heb je zelf de boom omgehakt waaruit hij gemaakt is, ook het zagen van de planken, het schuren, timmeren, lakken, en zelfs het subtiele houtsnijwerk heb je zelf gedaan. De herinnering aan die gelukzalige eerste maanden van jullie huwelijk, waarin Hilde en jij met beperkte middelen maar mateloos enthousiasme jullie kleine huisje inrichtten, doet je glimlachen.", has container ~open openable scenery male; Object kastkleding "grote hoeveelheid jurken, broeken en andere kleren" kast class Prop, with name 'kleren' 'hoeveelheid' 'andere' 'grote' 'schoon' 'schone', description "In deze kast bewaren jullie al je kleren, netjes opgevouwen en gestreken, in keurige stapels gelegd. In een smal gedeelte aan de zijkant hangen de jurken van je vrouw.", before [; Take, Remove: "Dit is geen moment om kleding uit te gaan zoeken. Je werkkleding van de afgelopen dag voldoet prima voor je nachtelijke queeste."; ], parse_name [; if (NextWord() == 'schoon' or 'schone' or 'nieuw' or 'nieuwe') { if(NextWord() == 'hemd' or 'broek' or 'laarzen' or 'schoenen' or 'shirt' or 'spijkerbroek' or 'jeans' or 'kleding' or 'kleren') return 2;wn--; }; if (NextWord() == 'in'){ if (NextWord() == 'kast' or 'kledingkast' or 'eiken' or 'zware') return 3;wn--;};wn--;wn--; return -1; ], has static transparent ~scenery male; Object jurken "jurken" kastkleding class Prop, with name 'jurken' 'jurk', description "Je laat je vingers langs de ruwe, stijve stof van de jurken glijden. Praktisch en zonder franje, de werkkleding van een bedrijvige huisvrouw. Helemaal achterin verstopt het witte satijn van Hildes trouwjurk zich alsof het met de rest van de kleding niet gezien wil worden.", has concealed static pluralname; Object trouwjurk "trouwjurk" kastkleding class Prop, with name 'trouwjurk' 'satijn' 'bruidsjurk' 'bruiloftsjurk', description [; print "Je pakt de koele, zachte stof vast en sluit voor een moment je ogen. Herinneringen aan je bruiloft komen met grote hevigheid boven; het is alsof er geen dag verstreken is, zo vers ligt het nog allemaal in je geest."; if (verhaaltracker.bruiloft == 0) {Herinner(1);} ! Bruiloft else{print "^";}; ], before [; Touch, Take: <>; ], has concealed female static; Object broeken "broeken" kastkleding class Prop, with name 'broeken', description "Deze stevige spijkerbroeken zijn de perfecte kleding voor een houthakker: niet kapot te krijgen.", has concealed static pluralname; Object houtsnijwerk "houtsnijwerk" mijnslaap class Prop, with name 'houtsnijwerk' 'decoraties' 'snijwerk' 'figuren', description "Hartjes, vogeltjes, bloemen en andere figuren die jouw verliefde geest bevolkten toen je deze decoraties sneed kronkelen kunstig om elkaar heen.", has ; Object hartjes_snijwerk "gesneden hartjes" mijnslaap class Prop, with name 'hart' 'hartje' 'hartjes' 'harten', description "Kleine hartjes lopen langs de hele rand van de kledingkast.", has pluralname; Object vogels_snijwerk "gesneden vogels" mijnslaap class Prop, with name 'vogel' 'vogels' 'vogeltjes' 'vogeltje' 'vlucht' 'vluchten', description "In sierlijke patronen kronkelen vlechten in de kast uitgesneden vogeltjes zich om lange bloemenranken.", has pluralname; Object bloemen_snijwerk "gesneden bloemen" mijnslaap class Prop, with name 'bloemen' 'bloem' 'bloempje' 'bloempjes' 'rank' 'ranken', description "De grote kledingkast is versierd met bloemenranken waarin zowel inheemse als exotische en fantastische bloemen voorkomen. Vluchten kleine vogels wentelen zich er omheen.", has pluralname; Object raam "raam" mijnslaap with name 'raam' 'venster' 'vensterglas' 'buiten', description "Onwerelds maanlicht valt door het raam naar binnen. Het dorp buiten is bedekt onder een dikke laag sneeuw, zodat de kerktoren als een beschuldigend priemende zwarte vinger uit een witte zee omhoog steekt. ~Hoe kan het toch,~ vraag je je af, ~dat dit landschap er zo liefelijk uit ziet, maar zo ijzig koud en vijandig is?~", before [; Search: <>; Close: if(self has open){give self ~open; "Je sluit het raam, en de koude wind waait niet langer door de kamer.";}; Open: if(self hasnt open){give self open; "Het raam zwaait open, en een ijzige wind baant zich onmiddellijk een weg naar binnen. Beschenen door het licht van de maan laat je je blik over het winterlandschap glijden. Daar rechts, ver in het bos, ligt ergens het kasteel van de baron - het zwarte bouwwerk waarbinnen jouw kleine meid de grootste angsten doorstaat.";}; Climb: "Hoewel dat een manier is om buiten te komen en de tocht naar het kasteel te ondernemen, lijkt het je verstandiger om de trap te nemen."; ], has scenery openable ~open; Object barentopf_raam "Barentopf" class Prop, with name 'barentopf' 'topf', found_in mijnslaap tuin, description [; if (location == mijnslaap){ "Door het raam zie je de besneeuwde Barentopf achter het dorp omhoog komen. Het is de hoogste heuvel in de nabije omgeving."; } else{ "Je ziet de besneeuwde Barentopf achter het dorp oprijzen. Het is de hoogste heuvel in de nabije omgeving, maar hij ligt niet in de goede richting wanneer je de baron wil bereiken."; }; ], has scenery male; Object dorp_raam "dorp" class Prop, with name 'dorp' 'huizen' 'woningen' 'stad' 'stadje', found_in mijnslaap tuin, description [; if (location == mijnslaap){ "Omdat je huis op een heuvel aan de rand van het dorp ligt, heb je vanuit het raam een mooi uitzicht over de andere woningen. Slechts achter enkele ramen branden nog lichtjes; verder is het dorp in deze winternacht gehuld in duisternis en sneeuw."; } else{ "Jouw huis staat aan de rand van het dorp, dat in deze koude decembernacht gebukt gaat onder een dikke laag sneeuw. Op dit tijdstip van de nacht is er niemand meer op straat. Het dorp hult zich in stilzwijgen."; }; ], has scenery; Object sneeuw_raam "sneeuw" class Prop, with name 'sneeuw' 'wit' 'witte' 'laag', found_in mijnslaap tuin, description "Een dik pak witte sneeuw heeft zich de afgelopen dagen op het landschap genesteld. In de straten is het gedegenereerd tot vieze bruine smurrie, maar verder geeft de sneeuw de wereld een majesteuze uitstraling.", has scenery male; Object kerk_raam "kerk" class Prop, with name 'kerk' 'kerktoren' 'toren', found_in mijnslaap tuin, description [; if (location == mijnslaap){ "De kerktoren steekt als een beschuldigend priemende zwarte vinger uit de witte sneeuw omhoog."; } else{ "Het puntje van de kerktoren steekt net boven de huizen aan de overkant van de straat uit, als een zwarte vinger tegen de met sterren bezaaide hemel."; }; ], has scenery male; Object sterren_raam "sterren" class Prop, with name 'sterren' 'ster' 'melkweg' 'hemel' 'sterrenhemel' 'fonkelende', found_in mijnslaap tuin haarslaap, description "De nachtelijke hemel is bezaaid met duizenden fonkelende sterren, als evenzovele ogen die de mensheid in de gaten houden.", has scenery male pluralname; Object maan_raam "maan" class Prop, with pname '.p' 'maan' '.p' 'schijnsel' '.p' 'mannetje' '.p' 'mannetje' 'in' 'de' 'maan', found_in mijnslaap tuin, description [; if (location == mijnslaap){ "Door het raam kan je de volle maan tegen de sterrenhemel zien staan. Even lijkt het alsof het mannetje in de maan bemoedigend naar je knipoogt, maar dan neemt hij weer zijn gewone mysterieuze pose aan."; } else{ "Het mannetje in de maan kijkt je kil, haast beschuldigend, aan vanuit zijn verheven positie."; }; ], has scenery male; Object bos_raam "bos" class Prop, with name 'bos' 'woud', found_in mijnslaap tuin, description "Het woud ligt als een inktzwarte massa over de heuvels. Op dit uur en in dit jaargetijde is het een gevaarlijke plaats, vol wilde dieren.", has scenery; Object over_deur class Deur, with pname '.p' 'deur' '.p' 'slaapkamerdeur' '.p' 'slaapkamer' '.p' 'overloop' '.p' 'deur' 'naar' '.x' 'de' '.or' 'mijn' '.or' 'onze' 'slaapkamer' '.or' 'overloop', short_name [; if (location == mijnslaap) print "deur naar de overloop"; else print "deur naar de slaapkamer"; return true; ], description [; if (location == mijnslaap) "De nauwsluitende deur scheidt je slaapkamer van de overloop en daarmee de rest van het huis."; else "Deze deur leidt terug naar de slaapkamer."; ], found_in mijnslaap overloop, door_dir [; if (location == mijnslaap) {return n_to;} else {return s_to;}; ], door_to [; if (location == mijnslaap) return overloop; else return mijnslaap; ], has door openable ~open scenery male; Object nachtkastje "vuren nachtkastje" mijnslaap class PropSup, with name 'kastje' 'nachtkastje' 'vuren', description [; print "Een simpel nachtkastje van vurenhout, het allereerste meubel dat je ooit zelf getimmerd hebt."; if(parent(foto) == self){print " Op het nachtkastje staat een familiefoto.";}; ""; ], before[; Open: "Achter het deurtje van het nachtkastje ligt niets dat je bij het bevrijden van je dochter zou kunnen helpen."; ], has ; Object deurtje "deurtje" nachtkastje class Prop, with name 'deurtje', description "Een simpel vuren deurtje zonder slot.", has ; Object foto "familiefoto" nachtkastje with name 'foto' 'familiefoto' 'prent' 'plaatje' 'portret', description [; if (verhaaltracker.status == 0){"Deze foto, gemaakt ter ere van het tienjarig huwelijk van jou en Hilde, is alweer enkele jaren oud. Plechtig staan jullie als twee zwart-witte standbeelden naast elkaar, voor de gelegenheid weer in jullie trouwkostuums gehesen. Op de voorgrond, dicht tegen jou aan, staat jullie dochter Maartje. Kleine Maartje, in haar prachtige witte jurkje, een stralende lach op haar gezicht. Op de foto heb je beschermend een arm over haar schouder geslagen. Maar nu is zij ontvoerd door de kwaadaardige baron... nogmaals zweer je dat je alles in je macht zal doen om haar te bevrijden.";} else {"TODO";}; ], after [; PutOn: if(parent(self) == nachtkastje){give self concealed;}; Take: give self ~concealed; return false; default: return false; ], has male concealed; Object overloop "Op de overloop" with name 'overloop' 'gang' 'boven', description [; print "De overloop is gehuld in een schemerig duister. "; if(over_deur has open){print "Maanlicht schijnt naar binnen door de open deur naar de slaapkamer. ";} else {print "De deur naar je slaapkamer is gesloten. ";}; if(maartje_deur has open){print "Aan de andere kant van de overloop staat de rode deur naar Maartjes kamer op een kier. ";} else {print "Aan de andere kant van de overloop leidt een rood geschilderde deur naar de kamer van je dochter Maartje. ";}; "Naast de trap naar beneden staat een elegant kastje, waarboven een grote spiegel in een vergulde lijst prijkt."; ], s_to over_deur, n_to maartje_deur, d_to over_trap, out_to over_trap, before [; Go: if(noun == d_to) {TrapNaarTuin();}; ], has light transparent; Object kastje "kastje" overloop with name 'kastje' 'kast' 'dressoir', description "Dit sierlijk gesneden kastje is een van de weinige meubels in huis die je niet zelf gemaakt hebt: het komt uit de erfenis van Hildes grootmoeder. De twee deurtjes aan de voorkant sluiten niet helemaal goed, een mankement dat je al jaren van plan bent te verhelpen, maar waar het nooit van komt.", has container openable ~open scenery; Object deurtjes "deurtjes" overloop with name 'deurtjes' 'deurtje', description "Gemaakt van hetzelfde kersenhout als de rest van het kastje zijn ze door de tand des tijds enigszins scheef in hun scharnieren komen te hangen.", before [; Open: <>; ], has scenery pluralname; Object scharnieren "scharnieren" overloop with name 'scharnier' 'scharnieren' 'koperen', description "Vier koperen scharnieren die nog prima functioneren, maar door ouderdom los zijn komen te zitten.", has scenery pluralname; Object fotoboek "fotoboek" kastje with pname 'boek' 'fotoboek' 'fotos' 'foto^s' 'album' 'fotoalbum' 'bladzijde' 'pagina' 'foto' '.p' 'volgende' 'pagina' '.or' 'bladzijde' '.or' 'foto' '.p' 'meer' 'fotos' '.or' 'foto^s', gesloten 1, description [; self.gesloten = 0; if (verhaaltracker.fotoalbum < 5) {Herinner(2);} ! Fotoalbum else{"Je bladert nogmaals door het fotoalbum, maar laat je ditmaal niet meeslepen door je herinneringen. Hoe goed je ook kijkt, de tweede helft van het boek blijft leeg.";}; ], before [; Consult, Open: <>; Close: if (self.gesloten == 1) { "Het fotoalbum is al gesloten."; } else { if (verhaaltracker.fotoalbum == 5) { "Met een meewarige zucht sluit je het fotoalbum."; } else { "Je besluit de rest van de foto's niet te bekijken, en sluit het fotoalbum."; }; }; ], has ; Object spiegel "spiegel" overloop class Prop, with name 'spiegel', description [; print "Uit de spiegel staar je jezelf tegemoet"; if(kleding has worn) { print ", een heldhaftige blik in je ogen. Je stoere houthakkerskleding zit als gegoten, en laat de stevige spierbundels in je armen goed uitkomen. "; } else { print ". In je nachthemd zie je er meer wanhopig dan heldhaftig uit, maar schijn bedriegt. "; }; print "Een grimmige glimlach speelt om je mondhoeken als je denkt aan de angst die de baron zal voelen wanneer jij zijn kasteel binnen dringt om hem "; if(parent(axe) == player){ "met je zware bijl te onthoofden."; } else { "met je stevige vuisten tot moes te slaan."; }; ], has male; Object spiegel_lijst "lijst" overloop class Prop, with name 'lijst', description "De overdadig versierde, met goudverf beschilderde lijst zou beter in het interieur van je schoonmoeder passen dan in dat van jullie - niet verwonderlijk, aangezien zij hem aan jullie gegeven heeft. Zolang ze nog regelmatig bij jullie op bezoek komt kan je hem echter niet weggooien.", before [; Attack: "Hoe graag je het ook zou willen, sociale conventies houden je tegen."; ], has male; Object maartje_deur class Deur, with pname 'deur' 'kamer' 'Maartjes' 'Maartje' 'rode' 'rood' '.p' '.x' 'rode' 'deur' 'naar' '.x' 'Maartjes' '.or' 'Maartjes' 'kamer' '.or' 'overloop', short_name [; if (location == haarslaap) print "deur naar de overloop"; else print "deur naar Maartjes kamer"; return true; ], description [; if (location == overloop) "Deze vrolijk rood geschilderde deur leidt naar de kamer van je ontvoerde dochter Maartje."; else "Deze deur leidt terug naar de overloop."; ], found_in haarslaap overloop, door_dir [; if (location == haarslaap) {return s_to;} else {return n_to;}; ], door_to [; if (location == haarslaap) return overloop; else return haarslaap; ], has door openable ~open scenery male; Object over_trap "trap" with pname 'trap' '.p' 'beneden' '.p' '.x' 'houten' 'trap' '.x' 'naar' '.x' 'beneden' '.x' '.p' 'x' 'naar' 'beneden' '.p' '.x' 'naar' 'buiten', description "De houten trap wentelt zich een inktzwarte diepte in.", found_in overloop, door_dir d_to, door_to tuin, react_before [; Climb, Go, Enter: if (noun == self || noun == d_obj || noun == tuin) { if(TrapNaarTuin() == true) return true; }; ], has door scenery male open; [ TrapNaarTuin ; print "Behoedzaam zoek je je weg door de duisternis naar beneden. In de gang neem je even de tijd om je lange winterjas aan te trekken, en dan open je de voordeur en stap je naar buiten de tuin in."; VraagToets(0,0,0); PlayerTo(tuin); move jas to player; give jas worn; give tuindeur open; return true; ]; [ TuinNaarTrap ; if (tuindeur has open) {print "Door de open voordeur stap je weer naar binnen.";} else {print "De voordeur openend stap je je huis binnen.";}; print " Je hangt je winterjas terug op de kapstok, en klimt in het donker de trap op naar de overloop."; VraagToets(0,0,0); PlayerTo(overloop); move jas to over_trap; give jas ~worn; return true; ]; Object jas "winterjas" over_trap with name 'jas' 'winterjas', description [; print "Recentelijk heb je deze warme winterjas gekocht, na lang aandringen van je vrouw. Zeker, er zaten gaten in je oude, en hij was niet half zo warm, maar hij was vertrouwd, het was "; style bold; print "jouw"; style roman; " winterjas - maar vrouwen begrijpen dat soort dingen niet."; ], before [; Disrobe: if(verhaaltracker.status < 2) { "Het is buiten ijskoud. Alleen je dikke winterjas beschermt je tegen onderkoeling."; } else { return false;}; ], has clothing male; Object haarslaap "In Maartjes kamer" with name 'maartje' 'kamer' 'slaapkamer' 'maartje^s', description "Zonder Maartjes stralende aanwezigheid lijkt haar kamer doods en leeg. Het geeft een droeve aanblik: een bed waar niet in geslapen wordt, een poppenhuis waar niet mee gespeeld wordt, een bureau waaraan niet gestudeerd wordt. De bonte kleuren waarin jij haar plafond en meubilair geverfd hebt verschijnen in het bleke licht van de sterren als een waaier aan grijstinten.", s_to maartje_deur, has light transparent; ! knuffel, meubilair Object maartjebed "Maartjes bed" haarslaap class Furniture, with name 'bed' 'Maartjes' 'Maartje^s' 'ledikant' 'kinderbed' 'kinderledikant', geslapen 0, description [; print "Onder het raam staat Maartjes bed, een ruim kinderledikant dat, zoals bijna alle meubels in jullie huis, een product is van jouw nijvere arbeid."; if(self.geslapen == 0){ if(parent(kussen) == self){ print " Het bed is keurig opgemaakt, de dekens perfect recht, het kussen opgeklopt. Te maagdelijk, te onaangeraakt, alsof het niet bestemd is voor menselijk gebruik."; } else{ print " Het bed is keurig opgemaakt, de dekens perfect recht, al mist het kussen. Er is duidelijk niet in geslapen."; }; } else{ if(parent(kussen) == self){ print " De dekens op het bed liggen er slordig bij en het kussen ligt scheef, alsof er recent iemand in het bed heeft geslapen. De kamer ziet er hierdoor minder doods uit dan hiervoor."; } else{ print " De dekens op het bed liggen er slordig bij, alsof er recent iemand in het bed heeft geslapen. De kamer ziet er hierdoor minder doods uit dan hiervoor."; }; }; ""; ], before [; Search, Look: if(parent(dagboek_sleutel) == kussen) { move dagboek_sleutel to player; give dagboek_sleutel ~concealed; "Verstopt onder het kussen vind je een klein koperen sleuteltje, dat je verwonderd oppakt."; } else return false; Enter: self.geslapen = 1; return false; Sleep: "Gewoon weer in slaap vallen en dromen van Maartje, niets doen, nergens aan hoeven te denken dan haar ranke verschijnen - maar zo gemakkelijk is het niet. Ze is ontvoert door de baron, en die wetenschap zal je dromen verstoren. Je zal niet kunnen slapen tot je tot actie bent overgegaan. En zelfs als het je zou lukken om in slaap te vallen, dan is er morgen weer een dag, en overmorgen - en het zal niet altijd blijven lukken. Beter om het kwaad vandaag onder ogen te zien, dan om de confrontatie uit te stellen tot morgen."; ], has enterable container transparent scenery open proper; Object deken_maartje "Maartjes deken" maartjebed class Prop, with name 'deken' 'dekens' 'dekbed' 'laken' 'lakens', description [; if(maartjebed.geslapen == 0){ "De dekens zijn in rood en blauw gekleurd, en liggen en strak en netjes bij."; } else { "De dekens zijn in rood en blauw gekleurd, en liggen slordig over het bed gedrapeerd."; }; ], before [; Attack: maartjebed.geslapen = 1; "Je slaat een aantal maal verwoed op de dekens van Maartjes bed om hun onverdraaglijke netheid te verstoren."; LookUnder: maartjebed.geslapen = 1; "Je kijkt onder de dekens, maar vindt niets."; Pull: maartjebed.geslapen = 1; "Je trekt verwoed aan de dekens van Maartjes bed om hun onverdraaglijke netheid te verstoren."; Push: maartjebed.geslapen = 1; "Je verfrommelt de dekens van Maartjes bed en werpt ze weer op het bed om hun onverdraaglijke netheid te verstoren."; Take: maartjebed.geslapen = 1; "Je verfrommelt de dekens van Maartjes bed en werpt ze weer op het bed om hun onverdraaglijke netheid te verstoren."; ], has proper; Object kussen "Maartjes kussen" maartjebed with name 'kussen' 'Maartjes' 'Maartje^s' 'sloop' 'kussensloop', description "Maartjes kussen is heerlijk zacht, want gevuld met veren. Een kussensloop in alle kleuren van de regenboog geeft het een vrolijk uiterlijk.", before [; Examine, Search, LookUnder: if(parent(dagboek_sleutel) == kussen) { move dagboek_sleutel to player; give dagboek_sleutel ~concealed; "Verstopt onder het kussen vind je een klein koperen sleuteltje, dat je verwonderd oppakt."; } else return false; ], after [; Take: if(parent(dagboek_sleutel) == kussen) { move dagboek_sleutel to player; give dagboek_sleutel ~concealed; "Verstopt onder het kussen vind je een klein koperen sleuteltje, dat je verwonderd oppakt."; } else return false; ], has proper; Object dagboek_sleutel "sierlijk sleuteltje" kussen with name 'sleutel' 'sleuteltje' 'koperen' 'klein' 'sierlijk', description "Het met delicate patronen versierde koperen sleuteltje vertoont sporen van intensief gebruik.", has concealed; Object raam_maar "raam" haarslaap with name 'raam' 'venster' 'vensterglas' 'buiten', description "Dreigend kijken de naaldbossen je aan door het venster, hun vijandig stilzwijgen een belofte van ontbering en gevaar. Ergens, diep in hen verscholen, ligt het slot van de baron. En ergens, diep in zijn slot, de kerker waar Maartje gevangen zit. Je ziet haar voor je, hoe ze nu, op dit moment, schreit om haar vader, eenzaam, alleen, verlaten, opgesloten in een steenkoude cel.", before [; Search: <>; Close: if(self has open){give self ~open; "Je sluit het raam, en een doodse stilte keert terug.";}; Open: if(self hasnt open){give self open; "Het raam zwaait open, en het geluid van de wind door het dennenbos sluipt zachtjes naar binnen. Ergens, ver weg, hoor je het huilen van wolven.";}; Climb: "Hoewel dat een manier is om buiten te komen en de tocht naar het kasteel te ondernemen, lijkt het je verstandiger om de trap te nemen."; ], has scenery openable ~open; Object sneeuw_maar "sneeuw" haarslaap class Prop, with name 'sneeuw' 'wit' 'witte' 'laag', description "Een dik pak sneeuw heeft zich de afgelopen dagen op het landschap genesteld. De boomtakken buigen zwaar door onder hun witte last.", has scenery male; Object maan_maar "maan" haarslaap class Prop, with name 'maan', description "Vanaf deze kant van het huis is de maan niet te zien.", has scenery male; Object bos_maar "bos" haarslaap class Prop, with name 'bos' 'woud' 'bossen' 'bomen' 'boom' 'dennenbos' 'naaldbos' 'dennenbossen' 'naaldbossen', description "Het woud ligt als een inktzwarte massa over de heuvels. En in het hart van deze duisternis leeft de kwade baron.", has scenery; Object heuvels_raam "heuvels" class Prop, with name 'heuvels' 'heuvel', found_in haarslaap mijnslaap, description "Lichte glooi@:ingen in het landschap geven deze streek 's zomers een pitoresk uiterlijk. In deze koude wintermaanden lukt het ze echter niet het uitzicht op sombere wouden op te vrolijken.", has pluralname scenery; Object wolven_maar "wolven" haarslaap class Prop, with name 'wolven' 'wolf', counter 0, description [; print "Je neemt geen beweging waar in het bos, niet van deze afstand."; if (raam_maar has open) { print " Maar een weeklagend gehuil stijgt, nauwelijks hoorbaar, op vanaf verre heuvels."; }; ""; ], before [; Listen: if(self.counter == 0){self.counter = 1; "Je buigt uit het raam om het gehuil van een roede wolven beter te kunnen horen. Even lijkt het alsof de verschillende jammerklachten een melodie vormen, maar dan verstommen ze plotseling. Een onheilszwangere stilte volgt, en je haalt opgelucht adem wanneereen kleine minuut later ergens anders in het bos het geluid van een eenzame wolf weerklinkt.";} else { "Vanuit de diepte van het woud stijgt zo nu en dan het gehuil van wolven op."; }; ], has scenery pluralname; Object wind "wind" haarslaap class Prop, with name 'wind', before [; Examine, Listen: "De wind suist zachtjes over de sneeuw-beladen takken van het dennenbos."; ], has male; Object poppenhuis "poppenhuis" haarslaap class Furniture, with name 'poppenhuis', description "Ooit heb je dit poppenhuis zelf in elkaar gezet: drie verdiepingen, met deurtjes en raampjes die open en dicht kunnen, allerhande meubels, en houten popjes met fijn gesneden gezichten die de woning kunnen bevolken. Hilde heeft gordijntjes gemaakt, vloerkleedjes en kleertjes voor de poppen.", has scenery container open; Object pop_deurtjes "poppendeurtjes" poppenhuis class Prop, with name 'deurtjes' 'deurtje' 'klinken' 'deurklinken' 'deurklinkjes' 'deurklink' 'klink' 'poppendeurtjes' 'poppendeurklinkjes', description "Geschilderde poppendeurtjes met bewegende poppendeurklinkjes, scheiden de verschillende kamers in het poppenhuis. Zo hebben de poppen wat privacy, en minder last van tocht.", has pluralname; Object pop_raampjes "poppenraampjes" poppenhuis class Prop, with name 'raampjes' 'raampje' 'poppenraampjes' 'poppenramen', description "De zijkanten van het poppenhuis worden gesierd door poppenraampjes, waar verschuifbare poppengordijntjes voor hangen. Hier kunnen de poppen door naar buiten kijken, want laten we wel wezen: de voorkant van het huis is voor ons dan wel open, maar voor de poppen zelf natuurlijk niet.", has pluralname; Object pop_gordijntjes "poppengordijntjes" poppenhuis class Prop, with name 'gordijntjes' 'gordijntje' 'poppengordijntjes' 'poppengordijntje', description "Van kleine lapjes stof heeft Hilde gordijntjes gemaakt die passen bij het interieur van de poppenwoning. Ook poppen hebben een gevoel voor stijl.", before [; Pull, Push: "Je schuift de delicate poppengordijntjes dicht en weer open."; ], has pluralname; Object pop_kleedjes "poppenkleedjes" poppenhuis class Prop, with name 'kleedjes' 'kleedje' 'poppenkleedjes' 'poppenkleedje' 'vloerkleedjes' 'vloerkleedje' 'poppenvloerkleedjes' 'poppenvloerkleedje', description "Zachte poppenkleedjes met wilde patronen bedekken de houten vloer van het poppenhuis, en geven de poppenkamers die knusse uitstraling die ze anders zouden missen.", has pluralname; Object pop_kleertjes "poppenkleertjes" poppenhuis class Prop, with name 'kleertjes' 'kleertje' 'poppenkleertjes' 'poppenkleertje' 'poppenkleding', description "De poppenkleertjes zijn met oog voor het kleinste detail door Hilde genaaid: jurkjes, broekjes, shirtjes, rokjes, schoentjes, zelfs sokjes en hoedjes zijn niet vergeten. Misschien heb je Hilde wel nooit zo gelukkig gezien als toen ze hier al haar creativiteit in kon uitleven.", has pluralname; Object poppen "poppen" poppenhuis with name 'poppen' 'pop' 'vaderpop' 'moederpop' 'poppenzoon' 'poppenzoontje' 'poppendochter' 'poppendochtertje', description "In het poppenhuis leven vier popjes: een vaderpop, een moederpop, een poppenzoon en een poppendochter. Vaderpop zit een krant te lezen op de bank in de woonkamer, terwijl moederpop, waarschijnlijk bezig met een maaltijd, in de keuken staat. Het poppenzoontje staart bedachtzaam uit een raam naar buiten, en de poppendochter ligt, nog gekleed in haar rode jurkje, op bed in haar slaapkamer.", before [; Take: "De poppen zijn de enigen in jullie huis die op dit moment een normaal gezinsleven hebben, en je bent niet van plan dat te gaan verstoren."; ], has pluralname; Object bureau "bureau" haarslaap class Furniture, with name 'bureau' 'tafel' 'schrijftafel' 'werktafel' 'beukenhout', description "Het kleine bureau van gelakt beukenhout is bezaaid met vellen papier, schriften en kleurpotloden.", has scenery supporter; Object papier "vellen papier" bureau class Prop, with name 'vellen' 'papier' '.p' 'papier' '.p' 'vel' '.p' 'papieren' '.p' 'stapels' '.x' 'papier' '.or' 'papieren' '.p' 'wit' 'onbeschreven', description "Een aantal nette stapels onbeschreven papier zijn links op het bureau gelegd, maar tientallen betekende vellen liggen chaotisch verspreid over het tafelblad.", has pluralname; Object tekeningen "tekeningen" bureau class Prop, with name 'tekening' '.p' 'tekeningen' '.p' 'betekende' '.or' 'beschreven' '.or' 'betekend' 'vel' '.or' 'vellen' '.or' 'papier' '.or' 'papieren', description "Het zijn allemaal vrolijke tekeningen die Maartje gemaakt heeft: vlinders die vliegen door een weiland vol bloemen; een huisje met jullie gezin ervoor; een vader een dochter die sleetje rijden. De felle kleuren spatten van het blanke papier, zelfs in het zwakke licht van de sterren.", has pluralname; Object dagboek "dagboek" bureau with counter 0, pname '.x' 'rode' '.x' 'rode' 'dagboek' '.or' 'nep-leer', with_key dagboek_sleutel, before [; Open: if (self has locked && parent(dagboek_sleutel) == player) { ; return true; } else { <>; }; Unlock: if (self hasnt locked) "Het dagboek is al van het slot gehaald."; if (self has locked && second == dagboek_sleutel) { print "Je steekt het koperen sleuteltje in het slot van het dagboek, en draait het voorzichtig rond. Met een zachte klik springt het slot open.^"; give self ~locked; return true;} print "Na enkele mislukte pogingen concludeer je dat ", (the) second, " niet de sleutel tot dit dagboek "; IsofZijn(second); print ".^"; return true; Consult, Examine: if (self has locked && parent(dagboek_sleutel) ~= player) { "Het in rood nep-leer gebonden boekje moet wel een dagboek zijn, aangezien het dicht zit met een klein koperen slot. Hoewel je brandt van nieuwsgierigheid, ben je niet van plan Maartjes dagboek te beschadigen. Je zult dus het sleuteltje moeten vinden voordat je het kan lezen."; } else { if (self has locked && parent(dagboek_sleutel) == player) ; if (self.counter == 0) { self.counter = 1; print "Je voelt je absurd schuldig wanneer je het dagboek opent om te lezen wat je dochtertje er voor geheimen aan heeft toevertrouwd. Natuurlijk hoort een vader dit niet te doen, maar dit is een noodgeval, en nood breekt wet. Misschien staat er wel iets in dat je kan helpen haar te bevrijden."; VraagToets(0,0,0); "Maar er staat niets geschreven in het dagboek, geen woord. In plaats daarvan zijn alle bladzijden in de eerste helft van het dagboek helemaal ingekleurd met zwarte inkt. Van boven tot onder, van links tot rechts, met een nooit falende precisie is op elke pagina het witte papier veranderd in een egaal zwart vlak. De tweede helft van het dagboek is nog blank, onaangeraakt, smetteloos. Verwilderd sluit je het dagboek."; } else { "Nogmaals bekijk je het dagboek, en opnieuw zijn er alleen egaal zwart ingekleurde pagina's in de eerste, en lelieblanke in de tweede helft. Maartje heeft nooit een woord geschreven, of ze allemaal onzichtbaar gemaakt."; }; }; ], has openable ~open lockable locked; Object plafond "plafond" haarslaap class Prop, with name 'plafond' 'boven', description "Beschilderd met liefelijke taferelen geeft het plafond Maartjes kamer onder normale omstandigheden een vrolijk en zorgenloos uiterlijk.", has ; Object meubilair "meubilair" haarslaap class Prop, with name 'meubilair' 'meubels', description "Een bed, een bureau en een prachtig in elkaar gezet poppenhuis, compleet met kleine bedjes, bureautjes en - nee, niet met een klein poppenhuisje - vormen het meubilair van Maartjes kamer.", has ; Object beer "knuffelbeer" haarslaap with name 'beer' 'knuffel' 'knuffelbeer' 'Bruin', description [; if(verhaaltracker.status <3){ "Bruin is al vele jaren Maartjes favoriete knuffel en trouwste compaan. De glimlach op zijn snuit is bemoedigend, en ook al zijn Bruins ogen slechts knopen, toch lijkt er iets van intelligentie in zijn blik te zitten."; } else { "TODO"; }; ], before [; Knuffel: "Je pakt de beer stevig in je armen, en knuffelt hem alsof je leven er van af hangt. Een traan rolt over je wangen als je bedenkt dat Maartje niet eens de troost van haar knuffel heeft."; Kiss: "Je geeft de knuffelbeer een zoen op zijn bruine snuit, en fluistert in zijn oor dat je Maartje terug zal brengen."; ], has male; Object tuin "In de tuin" with name 'tuin' 'voortuin' 'buiten' 'beneden', description "Ook je voortuin is bedolven onder een dikke laag sneeuw, die alle planten aan het zicht onttrekt. Alleen een paar kale struiken die zich tegen het tuinhek aan schurken steken door de witte deken heen. Achter je leidt de voordeur terug het huis in, terwijl de weg naar het oosten zich door het dorp en het woud heen naar het kasteel van de baron slingert. Vanuit zijn onbereikbare hoogte kijkt de maan verwijtend op je neer. Het uiterste puntje van de kerktoren steekt boven de huizen aan de overkant uit.", u_to tuindeur, n_to tuindeur, in_to tuindeur, s_to "Als je naar het zuiden gaat kom je op het dorpsplein uit, bij de kerk. Dat is niet de kant die je op moet om Maartje te bevrijden.", w_to "Het westen is precies de verkeerde kant op: die weg zou je het dal uitvoeren, elke stap verder van Maartje en de baron vandaan.", e_to bosdeur, has light transparent male; Object tuinhek "tuinhek" tuin class Prop, with name 'tuinhek' 'hek', description "Een laag houten hek scheidt jullie voortuin van de straat. Het tuinpad loopt naar een opening in het hek.", before [; Close, Open: "Het tuinhek loopt niet helemaal om de tuin heen, maar heeft een vaste opening."; ], has ; Object tuinpad "tuinpad" tuin class Prop, with name 'pad' 'tuinpad', description "Op het tuinpad ligt maar weinig sneeuw, omdat je het vandaag nog geveegd hebt. Vanaf de voordeur loopt het naar een opening in het tuinhek.", has ; Object overkant "overkant" tuin class Prop, with name 'overkant', description "De huizen aan de overkant lijken erg op het jouwe: twee verdiepingen, gebouwd uit hout, bedekt met sneeuw. Zo te zien slapen je buren, want door de ramen zie je alleen duisternis.", has male; Object straat "straat" tuin class Prop, with name 'straat' 'weg', description "De straten liggen vol met de vieze bruine smurrie die achterblijft wanneer voeten en wagenwielen sneeuw met modder vermengen.", has male; Object huis "jouw huis" tuin class Prop, with pname 'huis' '.x' 'in' '.p' 'woning' '.x' 'in', description "Jouw huis is, zoals bijna alle huizen in het dorp, opgetrokken uit hout en in wit, geel en rood geschilderd. Het heeft twee verdiepingen: de slaapkamers liggen op de bovenste, en de huiskamer en keuken op de onderste verdieping. Je werpt een blik door het raam van je slaapkamer, maar Hilde vertoont zich niet om je toch nog uit te zwaaien.", before [; Enter, Go, GoIn: <>; ], has proper; Object tuindeur "deur" with pname '.x' 'gele' 'deur' '.p' 'binnen' '.p' 'voordeur' '.p' 'overloop' '.p' 'boven' '.p' 'gang' '.x' 'in', description "Afgelopen zomer heb je de voordeur in hard geel geschilderd.", found_in tuin, door_dir u_to, door_to overloop, react_before [; Climb, Go, GoIn, Enter: if (noun == self || noun == u_obj || noun == overloop || noun == n_obj || noun == in_obj) { if(TuinNaarTrap() == true) return true; }; ], has door scenery male open openable; Object brievenbus "brievenbus" tuin class Furniture, with name 'brievenbus' 'postbus' 'bus', description "Een kleine brievenbus hangt aan de buitenkant van het tuinhek.", before [; Insert: if(second == self) { if (noun == axe || noun == beer || noun == kleding) { "Dat past niet in de kleine brievenbus."; }; }; ], has male openable ~open container; Object baron_brief "brief van de baron" brievenbus with pname 'brief' '.p' 'brief' 'van' 'de' 'baron' '.p' 'perkament' '.p' 'handtekening', description [; print "In sierlijk handschrift is er een bericht op het perkament geschreven:^^"; style bold; print "Aan de ouders van Maartje,^ ^ Bij deze wil ik u meedelen dat uw dochter Maartje op mijn bevel uit uw huis is weggehaald en naar mijn kasteel is vervoerd. Maakt u zich geen zorgen: zij is hier veilig en wordt goed verzorgd. Probeer Maartje niet op te zoeken of bij mij weg te halen; mijn slot is zwaar bewaakt en u zou enkel uw eigen welbevinden op het spel zetten.^ ^ Ik begrijp dat het moeilijk voor u moet zijn dat u uw dochter bent kwijt geraakt, en bied mijn excuses aan voor uw leed. U vraagt zich af wat mijn motieven zijn. Welnu, ik houd van haar, en kan niet leven zonder Maartje aan mijn zijde. Bij mij zal ze gelukkig zijn, dat beloof ik u op mijn woord van eer. Ooit zal u inzien dat dit de best mogelijke situatie is.^ ^ De baron.^^"; style roman; "Trillend van woede staar je naar de handtekening onderaan de pagina."; ], before [; Consult: <>; Attack: move snippers to parent(baron_brief); remove baron_brief; "Woedend verscheur je de brief in tientallen kleine snippertjes. Hoe durft hij! ~Ik houd van haar,~ schrijft hij - ja, vast! Wat een gewetenloze schurk!"; ], has male; Object snippers "snippers" baron_brief with pname 'snippers' 'snipper', description "Deze snippers zijn alles wat over is van de afschuwelijke brief van de baron.", has pluralname; Object axe "bijl" tuin with name 'bijl', description "Dit is je belangrijkste gereedschap. Je moet er vele duizenden bomen mee geveld hebben. De bijl is vlijmscherp geslepen, ligt lekker in de hand, en met jouw spieren is het gewicht geen enkel probleem. Waarschijnlijk kan je het hoofd van de baron er in @'e@'en slag mee splijten.", has male; !--------------------------------------------------- ! Scene 2: Bos !--------------------------------------------------- Object bosdeur with found_in tuin, door_dir e_to, door_to bos_1, react_before [; Climb, Go, GoIn, Enter: if (noun == self || noun == e_obj || noun == bos_1) { if(TuinNaarBos() == true) return true; }; ], has door scenery male open; [ TuinNaarBos; print "Heel even aarzel je, maar dan stap je vastbesloten de weg naar het donkere woud op. In het dorp is geen teken van leven te bekenen. Langzaam wordt je boos op al je buren en mededorpelingen. Waar zijn ze wanneer je ze nodig hebt? Waarom is er niet @'e@'en bij die het lef heeft Maartje te bevrijden? Een gebrek aan liefde - dat is wat mensen in staat stelt de problemen van anderen te negeren. Iedereen weet wat er aan de hand is, maar niemand doet iets, omdat niemand zich verantwoordelijk voelt."; VraagToets (0,0,0); print "Na enkel minuten bereik je de rand van het bos. Alsof je de donkere muil van een enorm en kwaadaardig beest in loopt, zo is het om het pad onder het overhangende bladerdek van de naaldbomen te volgen. Het licht van de maan bereikt de grond nauwelijks, en meermaals struikel je over grote takken die als valstrikken onder de sneeuw liggen te wachten."; VraagToets (0,0,0); print "Met ferme tred stap je verder, terwijl je probeert te bedenken hoe je het gemakkelijkst het kasteel van de baron in kan komen. Dan wordt je uit je overpeinzingen opgeschrikt door het gehuil van wolven. Het is moeilijk schatten, maar je zou verbaasd zijn als ze meer dan een kilometer van je verwijderd zijn. En het is nog zeker tien kilometer oostwaards naar het kasteel van de baron.^^"; verhaaltracker.status = 1; PlayerTo(bos_1); return true; ]; Object bos_1 "Lopend op een pad in het woud" with description "Op de meest zonnige dagen is het al schemerig in dit dichte naaldbos, en in het holst van deze winternacht is het bijna pikdonker. Een nauwelijks als zodanig herkenbaar pad loopt van het dorp in het westen naar het kasteel in het oosten. Te dichtbij, van links, klinkt het gehuil van een roede wolven.", e_to bos_2, w_to "Het is verleidelijk om terug te gaan naar het dorp - verleidelijk, maar laf. De teerling is geworpen, Maartje moet bevrijd worden.", u_to "Zelfs in het beste licht en als er geen sneeuw ligt is het al niet gemakkelijk om in deze grote dennen te klimmen, maar in de huidige omstandigheden is het onmogelijk.", d_to "Plat op de grond gaan liggen kalmeert sommige waakhonden, maar zeker geen roede hongerige wolven.", cant_go "Zomaar het bos in struinen zal je alleen verder van huis brengen.", before [; Listen: <>; ], has light; Object bomen "bomen" class Prop, with name 'boom' 'bomen' 'naaldboom' 'naaldbomen' 'bos' 'den' 'dennen' 'tak' 'takken' 'naaldbos', found_in bos_1 bos_2 bos_3, description "Hoog boven je uit torenen de woudreuzen. Het zijn decennia oude dennen, hun takken zwaar onder de last van de sneeuw. Terwijl je loopt zie je af en toe de maan tussen twee bomen doorkijken.", before [; Climb, Enter, GoIn, Go: "Zelfs in het beste licht en als er geen sneeuw ligt is het al niet gemakkelijk om in deze grote dennen te klimmen, maar in de huidige omstandigheden is het onmogelijk."; ], has pluralname; Object bos_1_wolven "wolven" bos_1 class Prop, with name 'wolf' 'wolven' 'roede' 'troep' 'gehuil' 'huilen', description "Het gehuil van de wolven links klinkt dichtbij, maar misschien zijn ze niet op jacht naar jou.", before [; Listen: <>; Attack: "Je zou het graag doen, maar de wolven zijn nog niet dicht genoeg genaderd."; ], has pluralname animate; Object bos_pad "pad" class Prop, with name 'pad' 'bospad' 'sneeuw', found_in bos_1 bos_2 bos_3, description "Het pad is bijna onzichtbaar onder de sneeuw die zich ook op de grond van het naaldbos heeft weten te nestelen.", has ; Object bos_2 "Op een pad in het woud" with description "Hier vindt een confrontatie met de leidster van de roede plaats.", e_to bos_3, has light; Object bos_3 "Op een pad in het woud" with description "Dit is het stuk pad vanaf waar je het kasteel kan zien liggen.", e_to ophaalbrug, has light; Object ophaalbrug "Bij de poort van het kasteel" with daemon_starter 0, description [; if (self.daemon_starter == 0) {StartDaemon(gargouille); self.daemon_starter = 1;}; "Op de ophaalbrug heb je een gesprek met een afschrikwekkende gargouille."; ], has light; Include "gargouille.inf"; !Include "gargouilleW.inf"; !=================================================== ! Speciale zaken ! !=================================================== ! *** Subs *** !=================================================== [ HelpSub; @erase_window -1; print "Welkom, lezer! "; style bold; print "~De baron~ ";style roman; print "is een interactief verhaal. Dat betekent dat u het verhaal niet passief voor u ziet ontrollen, maar zelf een actieve rol speelt in de fictieve wereld. U bestuurt de hoofdpersoon door hem opdrachten te geven. Bijvoorbeeld: 'bekijk bed' (korter: 'b bed' of 'x bed') laat de hoofdpersoon naar het bed kijken, wat een meer gedetaileerde beschrijving van dit voorwerp oplevert. Een aantal andere opdrachten die veel gebruikt worden zijn: 'kijk', 'inventaris' (afgekort 'i'), 'pak ', 'open ', 'sluit ', 'geef aan ', 'ga naar ', 'draag '. Experimenteer vooral met deze en andere werkwoorden, een deel van het plezier van interactieve fictie is het uitzoeken wat er allemaal mogelijk is in de fictieve wereld. Ook complexere zinnen als 'leg de kleding op de stoel' en 'open de deur met de bronzen sleutel' worden door het programma begrepen.^^ Er zijn een aantal belangrijke 'meta'-commando's. Deze hebben geen invloed op het verhaal, maar kunnen voor de lezer wel zeer nuttig zijn. Met 'save' en 'load' kunt u uw huidige positie bewaren en later weer inladen. Met 'restart' en 'quit' kan het lezen van "; style bold; print "~De baron~ ";style roman; print "respectievelijk opnieuw begonnen of gestaakt worden. 'Copyright' laat de copyright informatie zien. Het commando 'about' vertelt u meer over de mensen zonder wie die verhaal geen succes had kunnen worden.^"; style bold; print "^~De baron~ ";style roman; print "is geen traditionele text-adventure. Er zijn geen puzzels om op te lossen, en u kunt niet winnen of verliezen. Het is heel letterlijk interactieve fictie, niet een spel. Het doel is de fictionele wereld en de verontrustende thematiek van het verhaal zo intens mogelijk te beleven.^ ^ In dit verhaal is een tragisch en mogelijk schokkend thema aan de orde. "; style bold; print "~De baron~ ";style roman; print "is dan ook zeker niet geschikt voor jeugdige lezers en volwassenen die liever niet aan de duisterheid van de menselijke ziel herinnerd worden. Voor anderen kan het feit dat ik gepoogd heb dit thema met een maximum aan empathie te benaderen hopelijk juist tot een indrukwekkende ervaring leiden. Veel plezier."; VraagToets(1,1,1); ]; [CopyrightSub; @erase_window -1; style bold; print "^Copyright 2004, Victor Gijsbers^ ^De baron"; style roman;print " wordt gepubliceerd onder de GNU General Public License. Kort gezegd houdt dit in dat zowel dit programma als de broncode gratis te verkrijgen zijn en naar hartelust gekopieerd en verspreid mogen worden. Echter, alle software of andere werken waarin delen van dit programma of de broncode gebruikt worden, moeten op hun beurt ook onder de GNU General Public License uitgebracht worden.^^"; spaces 6;print"This program is free software; you can redistribute it and/or modify^"; spaces 6;print"it under the terms of the GNU General Public License as published by^"; spaces 6;print"the Free Software Foundation; either version 2 of the License, or^"; spaces 6;print"(at your option) any later version.^^"; spaces 6;print"This program is distributed in the hope that it will be useful,^"; spaces 6;print"but WITHOUT ANY WARRANTY; without even the implied warranty of^"; spaces 6;print"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the^"; spaces 6;print"GNU General Public License for more details.^^"; spaces 6;print"You should have received a copy of the GNU General Public License^"; spaces 6;print"along with this program; if not, write to the Free Software^"; spaces 6;print"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA^^"; print "Kijk op http://www.gnu.org/licenses/gpl.txt voor de tekst van de GNU General Public License."; VraagToets(1,1,1); ]; [AboutSub; @erase_window -1; print "Het interactieve verhaal "; style bold; print "~De baron~ "; style roman; print "werd geschreven door Victor Gijsbers. Het is zijn eerste Interactive Fiction werk. Bij het schrijven werd dankbaar gebruik gemaakt van Graham Nelson's ~Inform~ en Yuri Robbers vertaling van en niet aflatende ondersteuning bij de Nederlandse Inform Library. Veel eer gaat naar mijn beta-tester Eva Deinum.^ ^Neem bij vragen of commentaar vooral contact op met de auteur: victor@@64lilith.gotdns.org."; VraagToets(1,1,1); ]; [ Herinner onderwerp; switch(onderwerp){ 1: ! Bruiloft VraagToets(0,1,0); style bold; print "^^Met kloppend hart loop je het dorpsplein op. Je voelt je ongemakkelijk in het grijze pak dat je speciaal voor deze gelegenheid gekocht hebt - het past niet bij een eenvoudige jongen als jij. Voor de kerk heeft zich een menigte verzameld. Het hele dorp is er: je ziet jouw ouders staan, en even verderop de ouders van Hilde.^^ Terwijl je stil gaat staan om nog even de rode bloem in je knoopsgat recht te zetten, kijkt iemand in jouw richting en roept je naam. Allen draaien zich om en beginnen te juichen en je naam te roepen. Je voelt de hitte naar je gezicht stijgen, en je wangen krijgen dezelfde kleur als de bloem.^"; style roman; VraagToets(0,0,0); style bold; print "Je houdt er niet van om in het middelpunt van de belangstelling te staan. Je houdt sowieso niet van grote groepen mensen. De meeste tijd breng je daarom alleen door, in het bos bijvoorbeeld, of verzonken in houtsnijwerk. Maar ook alleen zijn heeft nadelen - de zwarte leegte van de eenzaamheid heeft meer dan eens gedreigd je op te slokken. Het beste is om samen te zijn met @'e@'en persoon waar je van kan houden, waarmee je veilig bent en immuun voor het leed van de wereld. Die droom zal vandaag uitkomen."; style roman; VraagToets(0,1,0); style bold; print "^^Eindelijk! Stralend als een lentezon glijdt Hilde het plein op. Haar lange blonde haren omlijsten een engelengezicht dat altijd door een brede glimlach getooid wordt. In haar sneeuwwitte bruidsjurk is ze een betoverde prinses, een mooier, reiner en onschuldiger meisje dan deze wereld verdient te bezitten. En ze komt op jouw af, haar ogen vol liefde en tederheid."; style roman; VraagToets(0,1,0); style bold; print "^^~Ja, dat beloof ik,~ spreekt ze, maar haar ogen zijn al niet meer gericht op de dominee: ze hebben de jouwe gevonden. Je neemt haar hand, haar zachte, tere hand, en zo voorzichtig als je kan schuif je de ring om haar vinger. Zij doet hetzelfde bij jou, en dan buigen jullie hoofden zich naar elkaar toe, en jullie lippen komen samen en bezegelen meer dan woorden ooit zouden kunnen het verbond van eeuwige liefde. Er wordt geklapt en gejuicht, maar jullie staan op een eiland van stilte en beleven de puurheid van samenzijn."; style roman; Vraagtoets(1,1,1); verhaaltracker.bruiloft = 1; 2: ! Fotoalbum switch(verhaaltracker.fotoalbum){ 0: print "In dit dikke boek plakt Hilde alle foto's die van jullie gezinnetje gemaakt worden, al vanaf de geboorte van Maartje. Je slaat het fotoalbum open, en ziet het geboortekaartje van Maartje. Negentien december, slechts enkele dagen voor kerstmis. Je slaat om, en daar ligt ze als baby in bad. Hilde, uitgeput in het ziekenhuisbed, houdt een huilende Maartje lachend in haar armen. Jijzelf, apetrots, houdt haar omhoog naar de fotograaf. De grootouders van beide kanten staan om het ziekenhuisbed.^ ^ Even laat je je mee drijven op een stroom van gelukzalige herinneringen, maar de gedachte aan de baron brengt je al snel terug naar de realiteit. Verstoord kijk je op. Er staan nog meer foto's in het album.^"; verhaaltracker.fotoalbum = 1; return true; 1: print "Je bladert verder door het album, en ziet Maartje steeds verder opgroeien. Tientallen gelukkige momenten uit een idyllische jeugd zijn hier vereeuwigd."; VraagToets(0,0,0); style bold; print "Maanden heb je in het geheim in de schuur gewerkt aan een poppenhuis voor Maartjes vierde verjaardag. Drie verdiepingen, met deurtjes en raampjes die open en dicht kunnen, allerhande meubels, en houten popjes met fijn gesneden gezichten die de woning kunnen bevolken. Hilde heeft gordijntjes gemaakt, vloerkleedjes en kleertjes voor de poppen. Nu staat het prachtige resultaat in kleurig feestpapier verpakt in een hoek van de kamer, en Maartje rent er op af en scheurt het papier aan repen. Ze slaakt een kreetje van verbazing, en kijkt dan minutenlang verwonderd naar het poppenhuis, opent de deurtjes, beweegt de poppen, doet de gordijnen dicht. Dan draait ze zich om, en rent lachend naar jullie toe om je te bedanken. Haar hoge gekir klinkt nu, acht jaar later, nog na in je oren.^"; style roman; verhaaltracker.fotoalbum = 2; return true; 2: print "Je bladert verder door het album, en ziet Maartje steeds verder opgroeien. Tientallen gelukkige momenten uit een idyllische jeugd zijn hier vereeuwigd."; VraagToets(0,0,0); style bold; print "Het is midden in de zomer, en jullie zijn gedrie@:en het bos in getrokken voor een ouderwetse picknick. De zevenjarige Maartje rent steeds vooruit, terwijl Hilde en jij met de zware mand tussen jullie in gestaag tempo over het pad lopen. ~Pappie!,~ roept ze plotseling, ergens links van jullie uit het bos. ~Pappie, kom eens kijken!~ Hilde, rolt haar ogen en neemt de mand met twee handen vast, zodat jij vrij bent het bos in te duiken. Een meter of twintig van het pad af staat ze bij een buddleia waar zoveel koolwitjes omheen zwermen dat de paarse bloemen nauwelijks te zien zijn. ~Kijk pappa!,~ roept ze, en springt naar de struik toe. Alle vlinders vliegen op, en voor een moment is ze een engel in een witte wolk van vleugels.^"; style roman; verhaaltracker.fotoalbum = 3; return true; 3: print "Je bladert verder door het album, en ziet Maartje steeds verder opgroeien. Tientallen gelukkige momenten uit een idyllische jeugd zijn hier vereeuwigd."; VraagToets(0,0,0); style bold; print "Het is een half jaar later, in de ijzige wintermaanden. Met Maartje ben je gaan slee@:en over het dikke pak sneeuw dat zich de afgelopen dagen over het dorp heeft afgezet. Jullie zijn helemaal naar de top van de Barentopf gesleed. ~Pappa, m'n handen doen zeer,~ klaagt Maartje. ~Ze zijn zo koud.~ Voorzichtig neem je haar kleine in jouw grote handen, en wrijf je ze warm. Je buigt je voorover en zoent haar op haar koude voorhoofd.^"; style roman; verhaaltracker.fotoalbum = 4; return true; 4: print "De laatste foto's in het album zijn van Maartjes negende verjaardag. Verbaasd sla je lege pagina's hierna om. Slechts de lijmresten van fotoplakkertjes doorbreken het egale zwart waar de foto's van de afgelopen drie jaren zouden moeten prijken.^"; verhaaltracker.fotoalbum = 5; }; default: ""; }; ]; [ VraagToets a b c i; ! This routine is called with 3 options, a, b and c, and returns nothing. ! In any case, the routine prints two returns, and waits for a key to be pressed. ! If a = 1, the routine prints a bold-faced messages asking for a key to be pressed. ! If b = 1, the routine clears the screen once the key is pressed. ! If c = 1, the routine executes the Look-command after the key is pressed. print "^^"; if(a == 1){style bold;print "[Druk op een toets.]^";style roman;}; @read_char 1 -> i; if(b == 1) @erase_window -1; if(c == 1) {print "^"; <>;}; ]; !=================================================== ! *** New verbs *** !=================================================== [ BladerSub; ! This routine helps extend the blader-verb for the photoalbum. Dutch version only. <>; ]; [KnuffelSub; "Dat is niet iets wat je wilt knuffelen."; ]; [SpreekSub; "Je zou niet weten wat je moest zeggen."; ]; !=================================================== ! *** Objects *** !=================================================== Object verhaaltracker with status 0, bruiloft 0, fotoalbum 0, has ; Object doel "het doel dat je voortdrijft" with pname 'doel' 'doelen' 'queeste' 'voortdrijft' '.p' 'doel' 'dat' 'je' 'voortdrijft', before [a; Examine: a = 1; print "De kwade baron heeft je dochtertje Maartje ontvoerd, en je wilt haar terug. Dan zullen jullie verder kunnen leven als het gelukkige en warme gezin dat jullie waren voordat hij de idylle bruut verstoorde. Om dit doel te bereiken zal je de volgende stappen moeten ondernemen:^^"; if(verhaaltracker.status < 1) { if (vrouw.slaap == 0){ print a++, ". Zonder Hilde te wekken - je wilt haar niet ongerust maken - je huis verlaten.^"; } else { print a++, ". Een goed wapen grijpen en op weg gaan.^"; }; }; if(verhaaltracker.status < 2) { print a++, ". Het woud ongeschonden doorkruisen en op een of andere manier het kasteel van de baron in komen.^"; }; if(verhaaltracker.status < 3) { print a++, ". Erachter komen waar Maartje zit opgesloten en waar de baron slaapt.^"; }; if(verhaaltracker.status < 4) { if(verhaaltracker.status < 3) { print a++, ". Hem zodanig afrossen dat hij nooit meer in staat zal zijn kleine meisjes te ontvoeren.^"; } else { print a++, ". De baron zodanig afrossen dat hij nooit meer in staat zal zijn kleine meisjes te ontvoeren.^"; }; }; if(verhaaltracker.status < 5) { print a++, ". Maartje bevrijden en haar weer veilig mee naar huis nemen.^"; }; return true; default: "Je doel is immaterieel, geen fysiek object."; ], has proper; !=================================================== ! Entry point routines [ Initialise; ; location = mijnslaap; move doel to player; lookmode = 2; ! like the VERBOSE command @set_colour 9 2; @erase_window -1; ! style bold; ! print "^^^^^^^^ ! ^ DE BARON^"; ! style roman; ! print "^ Een interactief verhaal geschreven door Victor Gijsbers."; ! VraagToets(0,1,0); style bold; print "^^^ Chi l'anima mi lacera?^ Chi m'agita le viscere?^ Che strazio, ohim@`e, che smania!^ Che inferno, che terror!^^^ ~Wie verscheurt mijn ziel?^ Wie windt mijn hart zo op?^ Wat een kwelling, wat een waanzin!^ Wat een hel! Welk een verschrikking!~^^^^^"; style roman; print " Uit de opera ~Don Giovanni~^ Tekst: Lorenzo da Ponte^ Muziek: Wolfgang A. Mozart"; VraagToets(0,1,0); !@set_colour 9 6; @erase_window -1; print "^^Twee doordringende dissonanten, kort na elkaar, wekken je uit je onrustige slaap. Na de tweede toon zwijgt de kerkklok en de stilte van de winternacht nestelt zich weer in het dorp. Je wrijft de slaap uit je ogen. Uiterst voorzichtig stap je uit bed, opdat je je vrouw Hilde niet wakker maakt. Zij zou je zeker proberen te stoppen. ^^^^"; VraagToets(0,0,0); return true; ]; !=================================================== !Standard and extended grammar Include "GrammarD"; !Include "wtalk"; Verb 'help' 'hulp' * -> Help; Verb 'copyright' 'copyleft' * -> Copyright; Verb 'about' * -> About; Extend 'klim' * 'uit'/'door' noun -> Climb; Extend 'spring' * 'uit'/'door' noun -> Climb; Verb 'aai' 'streel' * noun -> Touch; Verb 'raak' * noun 'aan' -> Touch; Verb 'val' * noun 'aan' -> Attack; Verb 'zoen' * creature -> Kiss; Verb 'daal' * noun 'af' -> Climb; Extend 'ga' * noun 'af' -> Climb; Verb 'laat' * noun 'vallen' -> Drop; Verb 'blader' * 'in' -> Examine * 'verder' -> Blader; Extend 'sla' * noun 'om' -> Examine; Extend 'kijk' * 'uit' noun -> Examine; Extend 'denk' * 'na' -> Think; Extend only 'knuffel' * noun -> Knuffel; Verb 'verschuif' * noun -> Pull; Verb 'verscheur' 'versnipper' * noun -> Attack; Extend 'klim' * 'in' noun -> Climb; Verb 'haal' * noun 'van' 'het' 'slot' 'met' held -> Unlock; Extend only 'spreek' first * 'met' creature -> Spreek; Verb 'praat' * 'met' creature -> Spreek;